<template>
	<view class="wenjuan pageBg" :style="{ paddingTop: statusBarHeight + 'px' }">
		<!-- 查询模块 -->
		<chaxun @search="handleSearch" />
		<!-- 填写模块 -->
		<tianxie ref="tianxieRef" @submit="handleSubmit" />
	</view>
</template>

<script setup>
import { ref, onMounted } from 'vue'
import chaxun from './components/chaxun.vue'
import tianxie from './components/tianxie.vue'
import { useUserStore } from '../../stores/user'

// 系统信息相关
const statusBarHeight = ref(0)

// 用户store
const userStore = useUserStore()

// tianxie组件引用
const tianxieRef = ref(null)

// 搜索功能
const handleSearch = (searchData) => {
	// 这里实现搜索逻辑
	console.log('搜索条件:', searchData)
	
	// 如果有教师姓名，传递给tianxie组件
	if (searchData.teacherName && tianxieRef.value) {
		tianxieRef.value.setReporter(searchData.teacherName)
	}
	
	uni.showToast({
		title: '搜索完成，如果有多个结果，请自行通过上课地点和单双周进行判断填写',
		icon: 'none',
		duration: 2000
	})
}

// 提交功能
const handleSubmit = (formData) => {
	// 提交逻辑已在tianxie组件中处理
	console.log('提交数据:', formData)
	
	// 可以在这里添加额外的提交后处理逻辑
	// 比如刷新页面数据、记录日志等
}

// 获取系统信息，计算顶部距离
const getSystemInfo = () => {
	uni.getSystemInfo({
		success: (res) => {
			// 状态栏高度
			statusBarHeight.value = res.statusBarHeight || 20
			
			// 如果是微信小程序，还需要考虑胶囊按钮的高度
			// #ifdef MP-WEIXIN
			const menuButtonInfo = uni.getMenuButtonBoundingClientRect()
			if (menuButtonInfo) {
				// 计算导航栏总高度：状态栏高度 + 胶囊按钮高度 + 上下间距
				const navBarHeight = statusBarHeight.value + menuButtonInfo.height + (menuButtonInfo.top - statusBarHeight.value) * 2
				statusBarHeight.value = navBarHeight - 40
			}
			// #endif
			
			console.log('系统信息:', {
				statusBarHeight: res.statusBarHeight,
				platform: res.platform,
				safeAreaInsets: res.safeAreaInsets
			})
		},
		fail: (err) => {
			console.error('获取系统信息失败:', err)
			// 设置默认值
			statusBarHeight.value = 44 // 默认导航栏高度
		}
	})
}

// 页面加载时获取系统信息和恢复用户状态
onMounted(() => {
	getSystemInfo()
	
	// 恢复用户状态（如果存在）
	userStore.restoreFromStorage()
})
</script>

<style lang="scss" scoped>
.wenjuan {
	padding: 20rpx;
	padding-top: 20rpx; /* 会被动态样式覆盖 */
	min-height: 100vh;
	background-color: #f5f5f5;
}
</style>